#!/bin/bash
#作者:囫碾
if [ ! -d "/tmp" ]; then
	echo "无法找到/tmp目录，请检查是否在正确的设备上运行。"
	exit
fi
# 继续执行
cd /sys/class/leds
uname=$(uname -a)
green=$(ls | grep  "green")
red=$(ls | grep  "red")
blue=$(ls | grep  "blue")
while true; do
	dialog --clear --backtitle "$uname"  --title "LED控制菜单" \
	--menu "选择您要控制的LED:" 0 0 8 \
	"1" "绿色LED" \
	"2" "红色LED" \
	"3" "蓝色LED" \
	"4" "保存配置" \
	"5" "开机自动应用" \
	"6" "查看保存的配置文件" \
	"7" "LED配置参数说明" \
	"8" "退出" 2> /tmp/led_input.txt

input=$(cat /tmp/led_input.txt) # 读取用户输入的选项

	case $input in
	1)
	green_trigger=$(dialog --clear --backtitle "LED控制脚本" --inputbox "请输入绿色LED的触发器行为：" 10 60 2>&1 >/dev/tty)
	echo $green_trigger > $green/trigger
;;
2)
red_trigger=$(dialog --clear --backtitle "LED控制脚本" --inputbox "请输入红色LED的触发器行为：" 10 60 2>&1 >/dev/tty)
echo $red_trigger > $red/trigger
;;
3)
blue_trigger=$(dialog --clear --backtitle "LED控制脚本" --inputbox "请输入蓝色LED的触发器行为：" 10 60 2>&1 >/dev/tty)
echo $blue_trigger > $blue/trigger
;;
4)
cat <<EOF >/etc/rc-led.local
#!/bin/sh -e
# LED配置脚本
sleep 3
echo $green_trigger > $green/trigger
echo $red_trigger > $red/trigger
echo $blue_trigger > $blue/trigger
exit 0
EOF
chmod 0755 /etc/rc-led.local
;;
5)
cat <<EOF >/etc/systemd/system/rc-led-local.service
[Unit]
Description=/etc/rc-led.local
ConditionPathExists=/etc/rc-led.local

[Service]
Type=forking
ExecStart=/etc/rc-led.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload && systemctl enable rc-led-local
;;
6)
dialog --clear --backtitle "LED控制脚本" --title "LED配置文件" --textbox /etc/rc-led.local 0 0
;;
7) dialog --clear --backtitle "LED控制脚本" --title "LED配置文件部分参数说明"   --msgbox "- none:
LED处于关闭状态，不产生任何触发的效果。
- default-on:
LED被设置为常亮状态
- netdev:
当网络设备传输数据时，LED会根据数据传输的速度和方向进行不同的闪烁模式。
- usb-gadget:
当设备处于USB通信模式时，LED会闪烁，用来指示设备的连接状态。
- usb-host:
当设备连接到USB主机时，LED会闪烁，用来指示设备与主机的连接状态。
- cpu:
根据CPU的负载情况，LED的行为会有所改变。
- bluetooth-power:
当设备处于蓝牙通信模式时，LED会闪烁，用来指示蓝牙的连接状态。
- rfkill-any:
当rfkill(无线设备开关)状态发生变化时，LED会闪烁，用来指示无线设备的开关状态。
- kbd-scrolllock, kbd-numlock, kbd-capslock, kbd-kanalock等：当键盘上对应的按键被按下时，LED会开关状态，用来指示锁定按键的状态。
- heartbeat:
LED会以不同频率的心跳闪烁，用来表示设备正常运行。
- timer:
根据设定的时间间隔，LED会循环闪烁或关闭，用来表示时间的流逝。
- panic:
当系统发生严重错误时，LED会用不同的闪烁模式来示警。
- phy0rx:
Wireless设备的接收操作，表示WiFi连接状态。" 0 0
;;
8)
# 清理临时文件并退出
rm /tmp/led_input.txt
clear
exit 0
;;
esac
done
